#!/bin/bash

# 步骤3: 启动应用服务和测试

set -e

SERVER_IP="47.237.10.129"
SERVER_USER="root"
REMOTE_DIR="/var/www/cumrbull-api"
APP_NAME="cu-mr-bull-api"
API_DOMAIN="api.cumrbull.com.sg"
ADMIN_DOMAIN="admin.cumrbull.com.sg"

echo "=== 步骤3: 启动应用服务 ==="

# 1. 启动Node.js应用
echo "启动Node.js应用..."
ssh $SERVER_USER@$SERVER_IP << EOF
    cd $REMOTE_DIR
    
    # 停止现有进程
    pm2 stop $APP_NAME 2>/dev/null || true
    pm2 delete $APP_NAME 2>/dev/null || true
    
    # 启动新进程
    pm2 start production-server.js --name $APP_NAME
    
    # 保存PM2配置
    pm2 save
    
    # 设置PM2开机自启
    pm2 startup systemd -u root --hp /root
    
    echo "应用服务启动完成"
EOF

# 2. 等待服务启动
echo "等待服务启动..."
sleep 15

# 3. 测试API服务
echo "测试API服务..."
if curl -f -s "https://$API_DOMAIN/health" > /dev/null 2>&1; then
    echo "✓ API服务器响应正常"
    curl -s "https://$API_DOMAIN/health" | head -5
else
    echo "✗ API服务器无响应，检查日志..."
    ssh $SERVER_USER@$SERVER_IP "pm2 logs $APP_NAME --lines 10"
fi

# 4. 测试管理后台
echo "测试管理后台..."
if curl -f -s "https://$ADMIN_DOMAIN" > /dev/null 2>&1; then
    echo "✓ 管理后台访问正常"
else
    echo "✗ 管理后台无法访问"
fi

# 5. 显示服务状态
echo "=== 服务状态检查 ==="
ssh $SERVER_USER@$SERVER_IP << 'EOF'
    echo "--- PM2进程状态 ---"
    pm2 status
    
    echo "--- Nginx状态 ---"
    systemctl status nginx --no-pager -l
    
    echo "--- 最近的应用日志 ---"
    pm2 logs cu-mr-bull-api --lines 5
    
    echo "--- 系统资源使用 ---"
    free -h
    df -h /
EOF

echo "=== 部署完成 ==="
echo ""
echo "🎉 CU MR BULL 生产环境部署成功！"
echo ""
echo "访问地址："
echo "  API服务器: https://$API_DOMAIN/health"
echo "  管理后台: https://$ADMIN_DOMAIN"
echo ""
echo "管理员登录信息："
echo "  邮箱: admin@example.com"
echo "  密码: 123456"
echo ""
echo "数据库信息："
echo "  主机: rm-t4n2um727ltmubz.mysql.singapore.rds.aliyuncs.com"
echo "  数据库: cumrbull"
echo "  用户: cmb_admin"
echo ""
echo "服务器管理命令："
echo "  查看日志: ssh root@$SERVER_IP 'pm2 logs $APP_NAME'"
echo "  重启服务: ssh root@$SERVER_IP 'pm2 restart $APP_NAME'"
echo "  服务状态: ssh root@$SERVER_IP 'pm2 status'"
echo ""